package com.gm.camunda.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import org.camunda.bpm.engine.impl.core.variable.scope.VariableInstanceLifecycleListener;
import org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity;
import org.camunda.bpm.engine.task.DelegationState;


import java.io.Serializable;
import java.util.*;

/**
 * {@code @Author}: zhang liang
 * {@code @Date}: 2022/10/10 0:06
 * {@code @BelongsProject}: gm
 * {@code @BelongsPackage}: com.gm.camunda.entity
 * {@code @Description}: Task实体
 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class TaskEntity implements Serializable {

    private static final long serialVersionUID = 2L;
    protected String id;
    protected int revision;
    protected String owner;
    protected String assignee;
    protected DelegationState delegationState;
    protected String parentTaskId;
    protected String name;
    protected String description;
    protected int priority;
    protected Date createTime;
    protected Date dueDate;
    protected Date followUpDate;
    protected int suspensionState;
    protected org.camunda.bpm.engine.impl.persistence.entity.TaskEntity.TaskState lifecycleState;
    protected String tenantId;
    protected boolean isIdentityLinksInitialized;
    protected String executionId;
    protected String processInstanceId;
    protected String processDefinitionId;
    protected String caseExecutionId;
    protected String caseInstanceId;
    protected String caseDefinitionId;
    protected String taskDefinitionKey;
    protected boolean isDeleted;
    protected String deleteReason;
    protected String eventName;
    protected boolean isFormKeyInitialized;

    protected List<VariableInstanceLifecycleListener<VariableInstanceEntity>> customLifecycleListeners;


    public String getId() {
        return id;
    }


    public void setId(String id) {
        this.id = id;
    }

    public int getRevision() {
        return revision;
    }

    public void setRevision(int revision) {
        this.revision = revision;
    }


    public String getOwner() {
        return owner;
    }


    public void setOwner(String owner) {
        this.owner = owner;
    }


    public String getAssignee() {
        return assignee;
    }

    public void setAssignee(String assignee) {
        this.assignee = assignee;
    }


    public DelegationState getDelegationState() {
        return delegationState;
    }


    public void setDelegationState(DelegationState delegationState) {
        this.delegationState = delegationState;
    }


    public String getParentTaskId() {
        return parentTaskId;
    }

    public void setParentTaskId(String parentTaskId) {
        this.parentTaskId = parentTaskId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public String getDescription() {
        return description;
    }


    public void setDescription(String description) {
        this.description = description;
    }


    public int getPriority() {
        return priority;
    }


    public void setPriority(int priority) {
        this.priority = priority;
    }


    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }


    public Date getDueDate() {
        return dueDate;
    }


    public void setDueDate(Date dueDate) {
        this.dueDate = dueDate;
    }


    public Date getFollowUpDate() {
        return followUpDate;
    }


    public void setFollowUpDate(Date followUpDate) {
        this.followUpDate = followUpDate;
    }

    public int getSuspensionState() {
        return suspensionState;
    }

    public void setSuspensionState(int suspensionState) {
        this.suspensionState = suspensionState;
    }

    public org.camunda.bpm.engine.impl.persistence.entity.TaskEntity.TaskState getLifecycleState() {
        return lifecycleState;
    }

    public void setLifecycleState(org.camunda.bpm.engine.impl.persistence.entity.TaskEntity.TaskState lifecycleState) {
        this.lifecycleState = lifecycleState;
    }


    public String getTenantId() {
        return tenantId;
    }


    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public boolean isIdentityLinksInitialized() {
        return isIdentityLinksInitialized;
    }

    public void setIdentityLinksInitialized(boolean identityLinksInitialized) {
        isIdentityLinksInitialized = identityLinksInitialized;
    }


    public String getExecutionId() {
        return executionId;
    }

    public void setExecutionId(String executionId) {
        this.executionId = executionId;
    }


    public String getProcessInstanceId() {
        return processInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId;
    }


    public String getProcessDefinitionId() {
        return processDefinitionId;
    }

    public void setProcessDefinitionId(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }


    public String getCaseExecutionId() {
        return caseExecutionId;
    }

    public void setCaseExecutionId(String caseExecutionId) {
        this.caseExecutionId = caseExecutionId;
    }


    public String getCaseInstanceId() {
        return caseInstanceId;
    }


    public void setCaseInstanceId(String caseInstanceId) {
        this.caseInstanceId = caseInstanceId;
    }


    public String getCaseDefinitionId() {
        return caseDefinitionId;
    }

    public void setCaseDefinitionId(String caseDefinitionId) {
        this.caseDefinitionId = caseDefinitionId;
    }


    public String getTaskDefinitionKey() {
        return taskDefinitionKey;
    }

    public void setTaskDefinitionKey(String taskDefinitionKey) {
        this.taskDefinitionKey = taskDefinitionKey;
    }

    public boolean isDeleted() {
        return isDeleted;
    }

    public void setDeleted(boolean deleted) {
        isDeleted = deleted;
    }


    public String getDeleteReason() {
        return deleteReason;
    }

    public void setDeleteReason(String deleteReason) {
        this.deleteReason = deleteReason;
    }


    public String getEventName() {
        return eventName;
    }

    public void setEventName(String eventName) {
        this.eventName = eventName;
    }

    public boolean isFormKeyInitialized() {
        return isFormKeyInitialized;
    }

    public void setFormKeyInitialized(boolean formKeyInitialized) {
        isFormKeyInitialized = formKeyInitialized;
    }


    public List<VariableInstanceLifecycleListener<VariableInstanceEntity>> getCustomLifecycleListeners() {
        return customLifecycleListeners;
    }

    public void setCustomLifecycleListeners(List<VariableInstanceLifecycleListener<VariableInstanceEntity>> customLifecycleListeners) {
        this.customLifecycleListeners = customLifecycleListeners;
    }
}
